Hi there,
I'm new to DOORS, and I have a somewhat complicated problem that I hope someone may be able to provide me with some advice on.
I have two modules, let's call them Module A and Module B, with links in between. Module A is set up to get some objects from B. This works fine. However, there is a user group that does not have access permissions for B. When they open Module A, none of the data pulled from B is available.
My question is this - is there a way that I could configure it so that these users can access Module A and the data that is linked from Module B, without having any access to B? Hopefully that question makes sense.
Thanks!
tjohns - Thu Jun 09 10:54:01 EDT 2011 |
|
Re: Get objects from module without access Peter_Albert - Thu Jun 09 11:06:45 EDT 2011
I guess with "get some objects from B" you mean either layout or attribute DXL. In that case, it is correct that lacking read access to B means no respective information in A
Possible solutions would be
1) writing an on-demand script which is run by a person with write access to A and read access to B, which populates specific attributes in A. If the content of B changes, the script has to be re-run each time.
2) Setting up more specific user rights in B. The group could get "R" to the Module, "None" to almost all attributes and "R" to the attributes, which are displayed in B. This requires a more careful setting up and maintenance of access rights, but would allow usage of attribute / layout DXL in A.
Regards,
Peter
|
|
Re: Get objects from module without access mcnairk - Thu Jun 09 11:07:41 EDT 2011
By definition, I think the users have to have at least Read permission for module B...
Ken.
|
|
Re: Get objects from module without access llandale - Thu Jun 09 15:36:09 EDT 2011 Peter_Albert - Thu Jun 09 11:06:45 EDT 2011
I guess with "get some objects from B" you mean either layout or attribute DXL. In that case, it is correct that lacking read access to B means no respective information in A
Possible solutions would be
1) writing an on-demand script which is run by a person with write access to A and read access to B, which populates specific attributes in A. If the content of B changes, the script has to be re-run each time.
2) Setting up more specific user rights in B. The group could get "R" to the Module, "None" to almost all attributes and "R" to the attributes, which are displayed in B. This requires a more careful setting up and maintenance of access rights, but would allow usage of attribute / layout DXL in A.
Regards,
Peter
I doubt this has ever been done but let me get extravagent here.
You have a text report attr in A "Report_Of_B" that has History/ChangeBars/ChangeDates turned off.
You have an attr-DXL in A "dxl_Report_Of_B" that follows links and builds the info about B. This Attr-DXL then takes the report it generates and attempts to set the first attr "Report_Of_B" to that value, trapping an ignoring any errors. It of course also sets its own obj.attrDXLName.
So when A is open edit and presumably has Read access to B, the first attribute gets populated, allowing it to be read later by folks who cannot see B.
Yes, there is awkwardness in always having to save A, but that's only when the A-to-B links change or when target B objects change.
Prefer the on-demand script solution better.
|
|
Re: Get objects from module without access HiLbiLy - Wed Jun 15 10:21:06 EDT 2011 mcnairk - Thu Jun 09 11:07:41 EDT 2011
By definition, I think the users have to have at least Read permission for module B...
Ken.
You could set up a post/pre save trigger in Module A to write to an Attribute in Module B that would contain the Module A information or even to a Copy of Module A that you could give your user read access to. Of course this would require the user of Module A to have access to Module B or the Copy of A.
|
|
Re: Get objects from module without access tjohns - Thu Jun 16 12:19:48 EDT 2011 HiLbiLy - Wed Jun 15 10:21:06 EDT 2011
You could set up a post/pre save trigger in Module A to write to an Attribute in Module B that would contain the Module A information or even to a Copy of Module A that you could give your user read access to. Of course this would require the user of Module A to have access to Module B or the Copy of A.
My problem has simplified somewhat. I don't have to worry about access any more.
I have a module "A" that has has several attribute columns in it. The first one is "Object Number", the second one is "Object Text". All of these are filled in
I have a second module "B" that has the same attribute columns in it. These are the same attributes as the objects in "A". The "Object Number" field is populated with object numbers that directly match all of the object numbers in "A", but the "Object Text" for B is blank.
Every object in B has a corresponding object in A, but not every object in A has a corresponding object in B. Every object in B has an out-link to the corresponding object in A.
How would I write a script that looks at each object in B, finds the Object Number, then searches A for an object with the same Object Number (which is the object that it is linked to as well) then populates the blank attribute fields in B with the corresponding attributes from A?
This seems far less complicated now, but I'm very lost as to the specific tools I would use to do this.
|
|
Re: Get objects from module without access tjohns - Thu Jun 16 13:01:28 EDT 2011 tjohns - Thu Jun 16 12:19:48 EDT 2011
My problem has simplified somewhat. I don't have to worry about access any more.
I have a module "A" that has has several attribute columns in it. The first one is "Object Number", the second one is "Object Text". All of these are filled in
I have a second module "B" that has the same attribute columns in it. These are the same attributes as the objects in "A". The "Object Number" field is populated with object numbers that directly match all of the object numbers in "A", but the "Object Text" for B is blank.
Every object in B has a corresponding object in A, but not every object in A has a corresponding object in B. Every object in B has an out-link to the corresponding object in A.
How would I write a script that looks at each object in B, finds the Object Number, then searches A for an object with the same Object Number (which is the object that it is linked to as well) then populates the blank attribute fields in B with the corresponding attributes from A?
This seems far less complicated now, but I'm very lost as to the specific tools I would use to do this.
The reason for this is that we have multiple customers, and keep all of our data in "A" because some of it is common to multiple customers. However, we want to be able to show customers only their individual data, and prevent them from accessing other customers' data. Any time we change data, it is in "A", but we need to periodically update the customer-specific module "B" with the new data from "A". This doesn't have to be done by the customer, or in real-time. We will have one of our team open both modules, update the data in "B" with the new data from "A", then show "B" to the customer.
|
|
Re: Get objects from module without access llandale - Thu Jun 16 14:51:59 EDT 2011 tjohns - Thu Jun 16 12:19:48 EDT 2011
My problem has simplified somewhat. I don't have to worry about access any more.
I have a module "A" that has has several attribute columns in it. The first one is "Object Number", the second one is "Object Text". All of these are filled in
I have a second module "B" that has the same attribute columns in it. These are the same attributes as the objects in "A". The "Object Number" field is populated with object numbers that directly match all of the object numbers in "A", but the "Object Text" for B is blank.
Every object in B has a corresponding object in A, but not every object in A has a corresponding object in B. Every object in B has an out-link to the corresponding object in A.
How would I write a script that looks at each object in B, finds the Object Number, then searches A for an object with the same Object Number (which is the object that it is linked to as well) then populates the blank attribute fields in B with the corresponding attributes from A?
This seems far less complicated now, but I'm very lost as to the specific tools I would use to do this.
If each oB is linked to some oA then you do not need to search mB for oA's Number. I would create an Attr-DXL in mB perhaps called "A_Linked_Text" that follows the link and displays oA's text. I would not have any sort of attr-DXL that populates B's "Object Text" with values from A.
Easy way to do that is to create a Layout in B using the Wizard, specifying the Link Module and specific Target module (A), and specifying the desired A attributes to display, "Object Text" in this case. Then convert the Layout to an Attr-DXL.
|
|
Re: Get objects from module without access SystemAdmin - Thu Jun 16 19:56:50 EDT 2011 llandale - Thu Jun 16 14:51:59 EDT 2011
If each oB is linked to some oA then you do not need to search mB for oA's Number. I would create an Attr-DXL in mB perhaps called "A_Linked_Text" that follows the link and displays oA's text. I would not have any sort of attr-DXL that populates B's "Object Text" with values from A.
Easy way to do that is to create a Layout in B using the Wizard, specifying the Link Module and specific Target module (A), and specifying the desired A attributes to display, "Object Text" in this case. Then convert the Layout to an Attr-DXL.
Louie wrote: ...I would not have any sort of attr-DXL that populates B's "Object Text" with values from A....
I tried really really hard to understand this - I sought guidance from today's Horoscope - I frowned and squinted in expectation that I should know the answer but to no avail - so dare I ask the question of the universe - why is that Louie?
Paul Miller
Melbourne, Australia
|
|
Re: Get objects from module without access SystemAdmin - Thu Jun 16 20:27:26 EDT 2011 tjohns - Thu Jun 16 13:01:28 EDT 2011
The reason for this is that we have multiple customers, and keep all of our data in "A" because some of it is common to multiple customers. However, we want to be able to show customers only their individual data, and prevent them from accessing other customers' data. Any time we change data, it is in "A", but we need to periodically update the customer-specific module "B" with the new data from "A". This doesn't have to be done by the customer, or in real-time. We will have one of our team open both modules, update the data in "B" with the new data from "A", then show "B" to the customer.
OK - I going to be radical and ask - do you need to have a Module B?
The assumption I'm making is that Module B is always a subset of Module A - am I correct? Even if I'm wrong, the following may still be an alternative approach to consider.
Why not use an attribute in Module A that indicates which objects are in scope for a particular customer, and then filter Module A to only show that info. In fact create a view that applies the filter and only shows those attributes that you want the customer to see. By setting the filter to include Ancestors, you retain a heading structure as well.
I'm not entirely sure in your case if this customer variant spec is then exported to Word and then passed onto the customer, or if you're actually handing them an archived copy of the DOORS module - if it's the later, then use the DOORS Copy Objects feature to build a new module based on what is displayed in the filtered view. This feature will also link the two modules up.
I'm not sure of your level of familiarity with the Copy Objects feature (Module menu Tools > Functions > Copy Objects) - I've found it very useful for something like this, in my case I have used it to create specs for 3rd party suppliers where they are required to deliver a subset of a prime spec - the links back to the prime spec allow me to run a script to refresh changed data - if new objects are added\deleted in the prime spec I just reflect that manually in the variant spec, if it's a lot of changes in the prime spec, I just rebuild the variant spec again. It's worth playing around with to see what it can do.
Paul Miller
Melbourne, Australia
|
|
Re: Get objects from module without access llandale - Fri Jun 17 14:20:25 EDT 2011 SystemAdmin - Thu Jun 16 19:56:50 EDT 2011
Louie wrote: ...I would not have any sort of attr-DXL that populates B's "Object Text" with values from A....
I tried really really hard to understand this - I sought guidance from today's Horoscope - I frowned and squinted in expectation that I should know the answer but to no avail - so dare I ask the question of the universe - why is that Louie?
Paul Miller
Melbourne, Australia
Object Text is much of a 'sacred attribute' and it seems to me auto-populating it is rarely right. The only time I can think it appropriate would be when you want to maintain a module very much identical to its sibling, such as when you want locked down attributes in the 'main' module with objects linked to an identical module housing non-locked-down attributes. In this case, the twin would indeed need its Object Text updated automatically when the Main module changes.
Usually, however, the other module "B" has a direct relationship to "A" but is not identically structured. e.g. "B" may be "Test procedures" that test requirements in "A" and it may very well be useful to have some other attribute in B perhaps "Requirement Being Tested" that has a copy of the Object Text in A. Thus, B has a secondary attribute populated from A, but not B's Object Text attribute.
|
|